AWS Amazon Kinesis คืออะไร? การแนะนำฟังก์ชันล่าสุดของ AWS

AWS Amazon Kinesis คืออะไร? การแนะนำฟังก์ชันล่าสุดของ AWS

Clock Icon2022.11.26

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

สวัสดีครับ LIGHT จากบริษัท Classmethod (Thailand) ครับ

ครั้งนี้อยากจะมาแนะนำให้ทุกคนได้รู้จักกับบริการ Amazon Kinesis กันครับ

Amazon Kinesis คือ

เป็นบริการ fully managed service ซึ่งทำหน้าที่เป็นเกตเวย์สำหรับการจัดเก็บข้อมูลการสตรีมที่สร้างขึ้นจำนวนมากอย่างต่อเนื่องบน AWS โดยสามารถใช้งานเป็นบัฟเฟอร์ที่มีความน่าเชื่อถือสูง คงทน และประสิทธิภาพด้านต้นทุนที่ยอดเยี่ยม

จุดเด่น

Amazon Kinesis Data Streams

  • Kinesis Data Streams สามารถลงบันทึกด้วยขนาดสูงสุดที่ 1 MB/วินาที และ 1,000 บันทึกต่อวินาทีสำหรับการเขียน และ 2 MB/วินาทีสำหรับการอ่าน รวมถึงสามารถดูข้อมูลได้แบบกึ่งเรียลไทม์ (ภายในไม่กี่วินาที)

  • บันทึกที่มีการลงทะเบียนไว้จะถูกกำหนดให้ไม่ซ้ำกันไว้ และสามารถใช้อ้างอิงข้อมูลจากแหล่งต่างๆได้ ไม่ว่าจะเป็น EC2、EMR、Lambda เป็นต้น

  • บันทึกจะถูกเก็บรักษาไว้เป็นเวลา 24 ชั่วโมง (และสามารถขยายได้ถึง 7 วันโดยการตั้งค่าเพิ่มเติม)

  • สามารถปรับประสิทธิภาพได้โดยการเพิ่มหรือลดจำนวน shard (ประสิทธิภาพต่อ 1 shard, 1000 PUT ต่อ 1 วินาที หรือ 1 MB ต่อ วินาที)

Amazon Kinesis Firehose

  • ข้อมูลที่ลงทะเบียนได้จะเหมือนกับ Kinesis Data Streams

  • ข้อมูลที่ลงทะเบียนจะถูกส่งออกไปยัง S3, Redshift โดยอัตโนมัติ

  • ไม่จำเป็นต้องใช้ shard ในการจัดการประสิทธิภาพ อย่างที่จำเป็นใน Kinesis Data Streams และยังสามารถใช้การเรียกเก็บเงินแบบจ่ายตามการใช้งานจริงตามจำนวนข้อมูลที่ป้อนเข้าไปได้

  • สามารถ PUT ได้ที่ 2500 ครั้งต่อวินาที และยังสามารถการปรับขีดจำกัดของบริการเพิ่มได้อีกด้วย

Amazon Kinesis Analytics

  • การประมวลผลแบบ TimeWindow ของข้อมูลสตรีมที่ลงทะเบียนใน Amazon Kinesis จะสามารถรวบรวมจากช่วงเวลาล่าสุดได้โดยใช้ SQL

  • สามารถใช้สำหรับการประมวลผลการสตรีมที่หลากหลาย เช่น "Streaming ETL", "continuous metric generation", "Responsive real-time analytics" เป็นต้น

ราคา

ตัวอย่างราคาของบริการ Kinesis Streams ตรวจสอบค่าบริการตัวอย่างได้จากลิ้งค์ทางด้านล่างนี้ครับ

Amazon Kinesis Data Firehose Pricing

Amazon Kinesis Data Streams Pricing

หรือท่านใดมีรายละเอียดการใช้งานในใจแล้วก็สามารถลงข้อมูลเพื่อตรวจสอบราคาที่เหมาะกับตนเองตามลิ้งค์ทางด้านล่างได้ครับ

AWS Pricing Calculator

Amazon Kinesis Data Streams

แผนบริการจะมีให้เลือก 2 อย่างคือ

  • โหมดตามความต้องการ จะเหมาะกับผู้ที่สร้างสตรีมข้อมูลใหม่ที่ไม่ทราบปริมาณงาน และมีการรับส่งข้อมูลในแอปพลิเคชันในจำนวนที่คาดเดาไม่ได้ หรือไม่ต้องการจำกัดความจุที่จะใช้งาน

  • โหมดที่เตรียมใช้งาน เหมาะกับผู้ที่มีปริมาณการรับส่งข้อมูลในแอปพลิเคชันที่คาดเดาได้ เรียกใช้งานแอปพลิเคชันที่มีการรับส่งข้อมูลที่สม่ำเสมอหรือค่อยๆ เพิ่มขึ้น หรือต้องการควบคุมค่าใช้จ่ายในเรื่องความจุ

โดยในบทความนี้เราจะแสดงตัวอย่างราคาของโหมดตามความต้องการครับ

ตัวอย่างค่าบริการต่อเดือนโหมดตามความต้องการ (On-Demand Mode)

  • ค่าบริการรายเดือน = 1125 USD

รายละเอียด

ในกรณีที่ส่งข้อมูลสตรีม 1,000 บันทึกต่อวินาที โดยแต่ละบันทึกมีขนาด 3 KB ไปยัง Amazon Kinesis Data Stream ที่ทำงานในโหมดความจุตามความต้องการใน Singapore Region

ตัวอย่างจะแสดงกรณีที่เก็บรักษาข้อมูลไว้ 1 วันและประมวลผลโดยใช้ผู้ใช้เพียงรายการเดียว หากใช้งานตามตัวอย่างนี้ค่าบริการรายเดือนที่คำนวณแล้วจะเป็นดังนี้

ขนาดบันทึก 3 KB ปัดขึ้นให้ใกล้เคียงกับ 1 KB มากที่สุด = 3 KB

ข้อมูลที่นำเข้า (GB ต่อวินาที) = (1,000 บันทึก/วินาที * 3 KB/บันทึก) / 1,048,576 KB/GB = 0.00286 GB/วินาที

ข้อมูลที่นำเข้า (GB ต่อเดือน) = 30 วัน/เดือน * 86,400 วินาที/วัน * 0.00286 GB/วินาที = 7,413.12 GB/เดือน

เนื่องจากคุณมีผู้ใช้บริการหนึ่งราย: ข้อมูลที่เรียกดู (GB ต่อวินาที) = 1 (ผู้ใช้บริการ) * (1,000 บันทึก/วินาที * 3 KB/บันทึก) / 1,048,576 KB/GB = 0.00286 GB/วินาที

ข้อมูลที่เรียกดู (GB ต่อเดือน) = 30 วัน/เดือน * 86,400 วินาที/วัน * 0.00286 GB/วินาที = 7,413.12 GB/เดือน

การเก็บรักษาหนึ่งวันรวมอยู่ในค่าบริการที่นำเข้าข้อมูล

ราคาของ Singapore Region อยู่ที่ 0.98 USD ต่อ GB ของข้อมูลที่นำเข้า

ค่าบริการรายเดือนของข้อมูลเข้า = 7,413.12 GB * 0.098 USD/GB = 726.48 USD

ราคาของ Singapore Region อยู่ที่ 0.049 USD ต่อ GB ของข้อมูลที่นำเข้า

ค่าบริการรายเดือนของข้อมูลออก = 7,413.12 GB * 0.049 USD/GB = 363.24 USD

เนื่องจากมีการใช้งานสตรีมเป็นเวลา 30 วันในเดือนดังกล่าว: ค่าบริการต่อสตรีม = 30 * 24 * 0.049 (อัตรา) = 35.28 USD

ค่าใช้จ่ายรายเดือนทั้งหมด = 726.48 USD + 363.24 USD + 35.28 USD = 1125 USD

Amazon Kinesis Firehose

ตัวอย่างค่าบริการต่อเดือน

  • ค่าบริการรายเดือน = 45.73 USD

รายละเอียดที่ใช้ในการคำนวณ

  • ราคาสำหรับ 500 TB แรก/ เดือน = 0.037 USD ต่อ GB (ราคาของ Singapore Region)
  • ขนาดบันทึก 3 KB ปัดขึ้นให้ใกล้เคียงกับปริมาณข้อมูลที่นำเข้า 5 KB มากที่สุด = 5 KB
  • GB ที่เรียกเก็บสำหรับการนำเข้าข้อมูล = (100 บันทึก/วินาที * 5 KB/บันทึก) / 1,048,576 KB/GB * 30 วัน / เดือน * 86,400 วินาที/วัน = 1,235.96 GB
  • ค่าบริการการนำเข้าข้อมูลต่อเดือน = 1,235.96 GB * 0.029 USD/GB = 45.73 USD

ข้อมูลอ้างอิง(Amazon DynamoDB)

  • ถึงการนำไปใช้จะต่างกัน แต่ก็ลองคำนวณดูว่าถ้าสมมติว่ามีการใช้ DynamoDB แทน Kinesis ในการรับข้อมูลสตรีมและจัดเก็บข้อมูลเป็นเวลา 24 ชั่วโมงราคาจะเป็นยังไง
  • คำนวณโดยใช้ AWS SIMPLE MONTHLY CALCULATOR

รายละเอียด
Region - Singapore
411 GB ต่อเดือน (การเก็บรักษาข้อมูล 1 วัน)
Item Size - 3KB
จำนวน Item ที่เขียนต่อวินาที - 2,000 (เขียน 1,000, ลบ 1,000)

Use Case

Kinesis Streams + Lambda, EC2, EMR

  • Lambda เหมาะอย่างยิ่งสำหรับการประมวลผลข้อมูลขนาดเล็กที่จัดเก็บข้อมูลที่ได้รับจาก Kinesis ลงใน S3, DynamoDB

  • EC2 สามารถใช้งานเป็นสภาพแวดล้อมการดำเนินการสำหรับแอพพลิเคชันที่ซับซ้อน และ ในกรณีที่มีข้อกำหนดในการรักษาประสิทธิภาพแบบเรียลไทม์ (ไม่กี่วินาที)

  • พิจารณาการใช้ EMR โดยคำนึงถึงขนาดข้อมูลและการประมวลผลเนื้อหา

Kinesis Firehose

  • แนะนำให้ใช้ Firehose ในการทำ Data archive ไปยัง S3, Redshift

  • สามารถทำการประมวลผลแบบกึ่งเรียลไทม์ (หลายนาที) ได้ผ่านการเชื่อมโยง Lambda กับ S3 ที่เป็น Trigger

การใช้งานร่วมกับบริการของ AWS

  • สามารถรับข้อมูลจาก AWS IoT, CloudWatch Logs ด้วย Kinesis ได้

  • Kinesis และ Lambda จะมีฟังก์ชั่นที่จะทำหน้าที่เป็น HUB ในการทำงานร่วมกับบริการอื่นๆ

  • Kinesis Analytics สามารถตั้งค่าการแจ้งเตือนขั้นสูง อย่าง log monitoring ได้

บทความที่เกี่ยวข้อง

สุดท้ายนี้

Amazon Kinesis เป็นหนึ่งในระบบที่ถือเป็นกระดูกสันหลังของบริการคลาวด์ โดยถูกพัฒนาขึ้นมาเพื่อรวบรวมบันทึกการใช้บริการจริงที่เชื่อถือได้ และในบริการต่างๆของ Amazon Kinesis จะสังเกตได้ว่า AWS พัฒนาบริการนี้ให้ใช้งานง่ายขึ้นเยอะเลยครับ

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.